﻿using System;
using System.Data;
using System.Windows.Forms;

namespace Gestión_UTN.View.listados
{
    public partial class ListadoInscripciones : Form
    {
        private static Gestión_UTN.bl.inscripcionbl createInscripcion = Gestión_UTN.factories.blfactory.createInscripcion();
        private static Gestión_UTN.bl.inscripcionMateriabl createInsMateria = Gestión_UTN.factories.blfactory.createInsMateria();
        private static Gestión_UTN.bl.alumnobl createAlumno = Gestión_UTN.factories.blfactory.createAlumno();

        private static DataTable inscripciones = null;
        private static DataTable insMaterias = null;
        private static bool checkIns = false;
        private static bool checkInsMat = false;

        public ListadoInscripciones()
        {
            InitializeComponent();
        }

        private void ListadoInscripciones_Load(object sender, EventArgs e)
        {
            try
            {
                inscripciones = createInscripcion.FindAllInscripciones();

                if (null != inscripciones)
                {
                    this.dgvInscripciones.Columns.Add("dni", "DNI");
                    this.dgvInscripciones.Columns.Add("nombre", "Nombre");
                    this.dgvInscripciones.Columns.Add("apellido", "Apellido");
                    this.dgvInscripciones.Columns.Add("fecha", "Fecha");
                    this.dgvInscripciones.Columns.Add("carrera", "Carrera");
                    this.dgvInscripciones.Columns.Add("titulo", "Título?");
                    this.dgvInscripciones.Columns.Add("fotos", "Fotos?");
                    this.dgvInscripciones.Columns.Add("planilla", "Planilla?");
                    this.dgvInscripciones.Columns.Add("copiaDoc", "Copia de DNI?");

                    foreach (DataRow dr in inscripciones.Rows)
                    {
                        bo.Alumnobo alu = createAlumno.FindAlumnoByDNI(Convert.ToInt32(dr["alu_dni"]));

                        this.dgvInscripciones.Rows.Add(dr["alu_dni"], alu.Nombre, alu.Apellido,
                            Convert.ToDateTime(dr["ins_fecha"]).ToShortDateString(), dr["car_nombre"], dr["ins_titulo"], dr["ins_fotos"],
                            dr["ins_planilla"], dr["ins_copiaDocumento"]);
                    }

                    checkIns = true;
                }
            }
            catch (exceptions.blexception)
            {
                MessageBox.Show("Error al Cargar!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al Cargar!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                Gestión_UTN.util.EscribirLog.escribirArchivo(ex.Message);
            }
        }

        private void lblInscripciones_Click(object sender, EventArgs e)
        {
            try
            {
                inscripciones = createInscripcion.FindAllInscripciones();

                if (null != inscripciones)
                {
                    this.dgvInscripciones.Rows.Clear();
                    this.dgvInscripciones.Columns.Clear();

                    this.dgvInscripciones.Columns.Add("dni", "DNI");
                    this.dgvInscripciones.Columns.Add("nombre", "Nombre");
                    this.dgvInscripciones.Columns.Add("apellido", "Apellido");
                    this.dgvInscripciones.Columns.Add("fecha", "Fecha");
                    this.dgvInscripciones.Columns.Add("carrera", "Carrera");
                    this.dgvInscripciones.Columns.Add("titulo", "Título?");
                    this.dgvInscripciones.Columns.Add("fotos", "Fotos?");
                    this.dgvInscripciones.Columns.Add("planilla", "Planilla?");
                    this.dgvInscripciones.Columns.Add("copiaDoc", "Copia de DNI?");

                    foreach (DataRow dr in inscripciones.Rows)
                    {
                        bo.Alumnobo alu = createAlumno.FindAlumnoByDNI(Convert.ToInt32(dr["alu_dni"]));

                        this.dgvInscripciones.Rows.Add(dr["alu_dni"], alu.Nombre, alu.Apellido,
                            Convert.ToDateTime(dr["ins_fecha"]).ToShortDateString(), dr["car_nombre"], dr["ins_titulo"], dr["ins_fotos"],
                            dr["ins_planilla"], dr["ins_copiaDocumento"]);
                    }

                    checkIns = true;

                    checkInsMat = false;
                }
            }
            catch (exceptions.blexception)
            {
                MessageBox.Show("Error al Cargar!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al Cargar!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                Gestión_UTN.util.EscribirLog.escribirArchivo(ex.Message);
            }
        }

        private void lblInsMaterias_Click(object sender, EventArgs e)
        {
            try
            {
                insMaterias = createInsMateria.FindAllInscripcionesMaterias();

                if (null != insMaterias)
                {
                    this.dgvInscripciones.Rows.Clear();
                    this.dgvInscripciones.Columns.Clear();

                    this.dgvInscripciones.Columns.Add("dni", "DNI");
                    this.dgvInscripciones.Columns.Add("nombre", "Nombre");
                    this.dgvInscripciones.Columns.Add("apellido", "Apellido");
                    this.dgvInscripciones.Columns.Add("fecha", "Fecha");
                    this.dgvInscripciones.Columns.Add("materia", "Materia");
                    this.dgvInscripciones.Columns.Add("carrera", "Carrera");
                    this.dgvInscripciones.Columns.Add("anio", "Año");
                    this.dgvInscripciones.Columns.Add("cuatrimestre", "Cuatrimestre");

                    foreach (DataRow dr in insMaterias.Rows)
                    {
                        bo.Alumnobo alu = createAlumno.FindAlumnoByDNI(Convert.ToInt32(dr["alu_dni"]));

                        this.dgvInscripciones.Rows.Add(dr["alu_dni"], alu.Nombre, alu.Apellido,
                            Convert.ToDateTime(dr["inm_fecha"]).ToShortDateString(), dr["mat_nombre"], dr["car_nombre"], dr["cur_anio"],
                            dr["cur_cuatrimestre"]);
                    }

                    checkIns = false;

                    checkInsMat = true;
                }
            }
            catch (exceptions.blexception)
            {
                MessageBox.Show("Error al Cargar!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al Cargar!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                Gestión_UTN.util.EscribirLog.escribirArchivo(ex.Message);
            }
        }

        private void btnExportar_Click(object sender, EventArgs e)
        {
            try
            {
                if (checkIns)
                {
                    Gestión_UTN.util.Herramientas.exportarAExcel(dgvInscripciones, "Inscripciones");
                }
                else if (checkInsMat)
                {
                    Gestión_UTN.util.Herramientas.exportarAExcel(dgvInscripciones, "InscripcionesMaterias");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al Intentar Exportar!!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                Gestión_UTN.util.EscribirLog.escribirArchivo(ex.Message);
            }


        }
    }
}
